package com.ys.day29.Reflect.p11注解;

/**
 * 描述:
 * 2）自定义注解(自己编写的注解)，自定义注解必须依赖于元注解
 *
 * 场景：自己编写注解(J1130Annotation)
 *
 * 注意：注解的因为叫做Annotation
 *
 * 注解的本质是什么? interface接口?
 *   是: public interface J1130Annotiaion extends java.lang.annotation.Annotation
 *   是一个 继承了 java.lang.annotation.Annotation  的接口
 *   since于 JDK1.5 而且,与普通的interface不同
 *   1;只能在注解里面定义 常量 方法声明 不能定义变量和方法实现
 *
 * @author CodeYang
 * @version 2021/1/12 1:08
 */
public class P2自定义注解 {


    // 注解本质是接口，不支持变量
    // int num ;

    /**
     * 编译OK，注解可以定义常量
     */
    int num = 10;

    /**
     * 在注解中定义方法
     * 编译错误：接口中定义的方法如果没有default关键字，那么这个方法就是一个抽象方法，抽象方法不能有实现
     */
    // public void aaa(){}

    /**
     * 注解定义的方法声明返回类型不支持void
     * 注解定义的方法声明，返回类型只支持8种基本类型、String类型、枚举类型
     * 注解里面的方法可以定义方法实现，但是必须定义default关键字
     * 注解不支持null关键字
     * 注解定义的方法不支持{}
     * 注解定义的方法不支持return
     * @return
     */
}



